package com.easylinkin.linkappapi.grid.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.easylinkin.linkappapi.grid.entity.GridFile;
import com.easylinkin.linkappapi.grid.models.dto.GridFileSaveDTO;
import com.easylinkin.linkappapi.grid.models.query.GridFileBatchQuery;
import com.easylinkin.linkappapi.grid.models.query.GridFileQuery;
import com.easylinkin.linkappapi.grid.models.vo.GridFileInfoVO;

import java.util.List;
import java.util.Map;

/**
 * 网格上传文件 服务类
 *
 * @author kuyujie
 * @since 2024-05-23
 */
public interface IGridFileService extends IService<GridFile> {

    /**
     * 查询文件
     *
     * @param query
     * @return List<GridFileInfoVO>
     * @author kyj
     * @date 2024/5/23 9:51
     */
    List<GridFileInfoVO> listInfoByQuery(GridFileQuery query);

    /**
     * 查询文件
     *
     * @param query
     * @return List<GridFileInfoVO>
     * @author kyj
     * @date 2024/5/23 9:51
     */
    List<GridFileInfoVO> listInfoByBatchQuery(GridFileBatchQuery query);

    Map<String, List<GridFileInfoVO>> mapListInfoByBatchQuery(GridFileBatchQuery query);

    /**
     * 查询文件数量
     *
     * @param query
     * @return long
     * @author kyj
     * @date 2024/5/23 9:51
     */
    long countByQuery(GridFileQuery query);

    /**
     * 保存数据
     *
     * @param dto
     * @author kyj
     * @date 2024/5/23 10:35
     */
    void saveDate(GridFileSaveDTO dto);

    /**
     * 根据id删除
     *
     * @param id
     * @author kyj
     * @date 2024/5/23 10:39
     */
    void delById(Long id);
}